Self-thinning – background info/theory

We are obtaining the self-thinning line from a size structured non-finite population growing through time. The model will be run under a series of species- and environment-specific scenarios

  1. The “self-thinning line” is obtained when we plot N, the number of individuals of each time point, per unit area, against mean S, their mean size (e.g. via their height or stem diameter). Scaling both these axes by log10 produces a straight “thinning line”. The total number of individuals across the size spectrum at each time point, and the total and then mean plant size is obtained through the following integrals:

\[ N_{T}= \int_{S_{0}}^{S_{MAX}}N(S)ds.....S_{T} = \int_{S_{0}}^{S_{MAX}} S.N(S)ds.....\overline{S} = \frac{S_{T}}{N_{T}} \] i.e. the plot shows size-density (total N vs mean S) for points through time which forms the trajectory of the line.

  1. To get total N, we integrate N from initial to max size to get the total number of individuals of all size, integration done for each step through time. i.e. calculating the area under the curve from S_0 to S_MAX at time step 1, then the area under the curve from S_0 to S_MAX at time step 2, etc.

  2. Then integrating: S*N(S), each size value times the # of individuals at that size: from initial to max size, and mean size is just the average of the total quantity of size, so total height, divided by total number of individuals \(N_{T}\).

  3. We need the mean size \(\overline S\) for our self-thinning line, which we can get by dividing the total size by total density at each step

  1. We cannot simply use the “density” output from plant, which represents the cohorts or the expected/average individual trajectories of specific size/age classes with varying numbers over time. We must use the size/age data of all individual plants for the self-thinning dynamic to be observed. The integration must be weighted by the number of individuals in each size/age class. With cohorts we are just using a representative hypothetical individual without the details of how many individuals each may represent, the cohort-density with size. For example if we took 100 cohorts that each represent a different approximate age/size, each representing numbers from close to zero to numerous individuals, but we simply divided the total height by 100 rather than the number those 100 cohort “groups” represent, we essentially lose all the important individual density data.

3a. We want to improve our approximation by integrating with shorter time steps across the regions under the size-density curve we are interested in, accounting for the number of individuals and their mean height for each separate size class. In doing so, we are able to account for the continual influx of saplings which would otherwise skew our mean height and density data, and thus focus on the larger individuals that are growing into maturity. This can be done with the following integral and its approximate sum:

\[ \overline{H}=\int_0^\infty \frac{ Hn(H,t)}{N(t)}dt \simeq \frac{\sum H_{i}n(H_{i},t)(H_{i}-H_{i-1})}{\sum n(H_{i},t)(H_{i}-H_{i-1})} = \frac{\sum H_{i}}{K}\] Not all our sub-intervals of integration will be equal in size/width, as the time steps in the initial stand phase are much shorter to account for the extremely dynamic nature of this period and to capture all of this detail. We cannot take K to be a sum of equal (Hi - (Hi-1)) segments. And the regular introduction of new individuals at different times means that we need to determine the density per height segment (Hi-(Hi-1)) per unit area, #/H/m^2

  1. Trapazoidal Rule in R → The Trapezoidal Rule is one of Closed Newton-Cotes formulas for approximating the definite integral of a function. We integrate by calculating and summing the areas of many consecutive trapezoids below our size-density curve, which gives a good approximation of the population dynamics in this case.

  2. Additionally, we may need to select a cut-off point in the stand’s age at which we stop incorporating new individuals into the model, as these new saplings likely pop up (when older larger plants die during the thinning process providing short periods of increased light and space?), but these saplings don’t persist to compete with the main/mature stand. + minimum height to further reduce noise?

## Warning: package 'dplyr' was built under R version 4.1.1
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## Warning: package 'ggplot2' was built under R version 4.1.1
## Warning: package 'ggrepel' was built under R version 4.1.1
## [2022-03-30 16:23:03.341] Activating logging to console

Differences in thinning across species and environments - can traits and climate variables help us to understand these differences?

Self-thinnning Plot

Average size over time. Get average size by dividing total of chosen size variable by the sum of individuals per unit area - we have mean stem area, mean stem diameter, mean height, mean mass above ground, and also mean leaf area (LA)

#Grow a stand: higher resolution cohort spacing + recruitment decay = 0 (i.e. no decay)

Plots shows 1. the flow of individuals in the stand over time, 2. the leaf area over time, and 3. the self-thinning line that incorporates all individuals of all sizes and successional groups including multiple thinning periods.

## Creating default FF16 environemnt
## [2022-03-30 16:23:04.758] schedule> 1: Splitting {110} times (141)
## [2022-03-30 16:23:07.379] schedule> 2: Splitting {153} times (251)
## [2022-03-30 16:23:11.747] schedule> 3: Splitting {99} times (404)
## [2022-03-30 16:23:16.916] schedule> 4: Splitting {120} times (503)
## [2022-03-30 16:23:23.225] schedule> 5: Splitting {81} times (623)
## [2022-03-30 16:23:30.525] schedule> 6: Splitting {48} times (704)
## [2022-03-30 16:23:38.521] schedule> 7: Splitting {11} times (752)
## Creating default FF16 environemnt

Exponential decay function

This function was implemented to decrease the seed rain quickly and very early on to capture the trajectory of just the first wave of individuals. This is the function used to change the seed rain:

Traits – LMA, HMAT, WD, leaf N

(with recruitment decay implemented)

Trait comparison 1:

LMA & LL -LMA thick vs thin leaves – values: 0.07, 0.24, 0.5 [kg/m^2] -Plot of LA over time and self-thinning lines with time stamps (year) on one plot and in separate plots

## Creating default FF16 environemnt
## [2022-03-30 16:23:57.402] schedule> 1: Splitting {56} times (141)
## [2022-03-30 16:23:58.728] schedule> 2: Splitting {65} times (197)
## [2022-03-30 16:24:00.950] schedule> 3: Splitting {1} times (262)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:24:06.490] schedule> 1: Splitting {59} times (141)
## [2022-03-30 16:24:07.907] schedule> 2: Splitting {67} times (200)
## [2022-03-30 16:24:10.464] schedule> 3: Splitting {5} times (267)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:24:16.788] schedule> 1: Splitting {58} times (141)
## [2022-03-30 16:24:18.211] schedule> 2: Splitting {59} times (199)
## [2022-03-30 16:24:20.493] schedule> 3: Splitting {2} times (258)
## Creating default FF16 environemnt

Trait comparison 2:

Nitrogen per unit area values: 0.00187, 0.003, 0.005 [kg/m^2]

## Creating default FF16 environemnt
## [2022-03-30 16:24:27.404] schedule> 1: Splitting {59} times (141)
## [2022-03-30 16:24:28.839] schedule> 2: Splitting {67} times (200)
## [2022-03-30 16:24:31.428] schedule> 3: Splitting {5} times (267)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:24:38.102] schedule> 1: Splitting {57} times (141)
## [2022-03-30 16:24:40.025] schedule> 2: Splitting {75} times (198)
## [2022-03-30 16:24:43.503] schedule> 3: Splitting {26} times (273)
## [2022-03-30 16:24:47.394] schedule> 4: Splitting {13} times (299)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:24:57.553] schedule> 1: Splitting {55} times (141)
## [2022-03-30 16:25:02.234] schedule> 2: Splitting {78} times (196)
## [2022-03-30 16:25:06.622] schedule> 3: Splitting {34} times (274)
## [2022-03-30 16:25:11.704] schedule> 4: Splitting {9} times (308)
## [2022-03-30 16:25:16.981] schedule> 5: Splitting {6} times (317)
## Creating default FF16 environemnt

Trait comparison 3:

HMAT: 5, 10, 25 and 40 metres

## Creating default FF16 environemnt
## [2022-03-30 16:25:29.296] schedule> 1: Splitting {40} times (141)
## [2022-03-30 16:25:30.408] schedule> 2: Splitting {37} times (181)
## [2022-03-30 16:25:33.500] schedule> 3: Splitting {9} times (218)
## [2022-03-30 16:25:36.704] schedule> 4: Splitting {14} times (227)
## [2022-03-30 16:25:40.098] schedule> 5: Splitting {8} times (241)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:25:48.859] schedule> 1: Splitting {53} times (141)
## [2022-03-30 16:25:50.784] schedule> 2: Splitting {53} times (194)
## [2022-03-30 16:25:53.671] schedule> 3: Splitting {14} times (247)
## [2022-03-30 16:25:56.788] schedule> 4: Splitting {7} times (261)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:26:04.189] schedule> 1: Splitting {63} times (141)
## [2022-03-30 16:26:05.494] schedule> 2: Splitting {77} times (204)
## [2022-03-30 16:26:07.720] schedule> 3: Splitting {32} times (281)
## [2022-03-30 16:26:10.554] schedule> 4: Splitting {15} times (313)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:26:16.779] schedule> 1: Splitting {63} times (141)
## [2022-03-30 16:26:18.036] schedule> 2: Splitting {77} times (204)
## [2022-03-30 16:26:20.183] schedule> 3: Splitting {32} times (281)
## [2022-03-30 16:26:22.825] schedule> 4: Splitting {15} times (313)
## Creating default FF16 environemnt

1. Plotting LA and biomass over time

-> are there differences? how big?

    1. LMA values: 0.07, 0.24, 0.5 [kg/m^2]
    1. N per unit area values: 0.00187, 0.003, 0.005 [kg/m^2]
## Creating default FF16 environemnt
## [2022-03-30 16:26:29.546] schedule> 1: Splitting {56} times (141)
## [2022-03-30 16:26:30.873] schedule> 2: Splitting {65} times (197)
## [2022-03-30 16:26:33.121] schedule> 3: Splitting {1} times (262)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:26:38.663] schedule> 1: Splitting {59} times (141)
## [2022-03-30 16:26:40.090] schedule> 2: Splitting {67} times (200)
## [2022-03-30 16:26:42.663] schedule> 3: Splitting {5} times (267)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:26:48.933] schedule> 1: Splitting {58} times (141)
## [2022-03-30 16:26:50.358] schedule> 2: Splitting {59} times (199)
## [2022-03-30 16:26:52.639] schedule> 3: Splitting {2} times (258)
## Creating default FF16 environemnt

## Creating default FF16 environemnt
## [2022-03-30 16:26:58.698] schedule> 1: Splitting {59} times (141)
## [2022-03-30 16:27:00.123] schedule> 2: Splitting {67} times (200)
## [2022-03-30 16:27:02.693] schedule> 3: Splitting {5} times (267)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:27:09.337] schedule> 1: Splitting {57} times (141)
## [2022-03-30 16:27:11.235] schedule> 2: Splitting {75} times (198)
## [2022-03-30 16:27:14.644] schedule> 3: Splitting {26} times (273)
## [2022-03-30 16:27:18.486] schedule> 4: Splitting {13} times (299)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:27:28.629] schedule> 1: Splitting {55} times (141)
## [2022-03-30 16:27:33.309] schedule> 2: Splitting {78} times (196)
## [2022-03-30 16:27:37.683] schedule> 3: Splitting {34} times (274)
## [2022-03-30 16:27:42.755] schedule> 4: Splitting {9} times (308)
## [2022-03-30 16:27:48.041] schedule> 5: Splitting {6} times (317)
## Creating default FF16 environemnt

2. turn into differences in self-thinning line, zoom in and out

3.a. vary two traits at once: LMA/narea all value combinations

## Creating default FF16 environemnt
## [2022-03-30 16:28:01.698] schedule> 1: Splitting {56} times (141)
## [2022-03-30 16:28:03.028] schedule> 2: Splitting {65} times (197)
## [2022-03-30 16:28:05.260] schedule> 3: Splitting {1} times (262)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:28:11.340] schedule> 1: Splitting {60} times (141)
## [2022-03-30 16:28:13.206] schedule> 2: Splitting {79} times (201)
## [2022-03-30 16:28:16.825] schedule> 3: Splitting {29} times (280)
## [2022-03-30 16:28:21.281] schedule> 4: Splitting {8} times (309)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:28:33.272] schedule> 1: Splitting {57} times (141)
## [2022-03-30 16:28:35.815] schedule> 2: Splitting {80} times (198)
## [2022-03-30 16:28:39.971] schedule> 3: Splitting {52} times (278)
## [2022-03-30 16:28:45.632] schedule> 4: Splitting {13} times (330)
## [2022-03-30 16:28:51.551] schedule> 5: Splitting {1} times (343)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:29:04.485] schedule> 1: Splitting {59} times (141)
## [2022-03-30 16:29:05.927] schedule> 2: Splitting {67} times (200)
## [2022-03-30 16:29:08.519] schedule> 3: Splitting {5} times (267)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:29:15.266] schedule> 1: Splitting {57} times (141)
## [2022-03-30 16:29:17.164] schedule> 2: Splitting {75} times (198)
## [2022-03-30 16:29:20.585] schedule> 3: Splitting {26} times (273)
## [2022-03-30 16:29:24.429] schedule> 4: Splitting {13} times (299)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:29:34.540] schedule> 1: Splitting {55} times (141)
## [2022-03-30 16:29:39.221] schedule> 2: Splitting {78} times (196)
## [2022-03-30 16:29:43.595] schedule> 3: Splitting {34} times (274)
## [2022-03-30 16:29:48.651] schedule> 4: Splitting {9} times (308)
## [2022-03-30 16:29:53.927] schedule> 5: Splitting {6} times (317)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:30:05.719] schedule> 1: Splitting {58} times (141)
## [2022-03-30 16:30:07.146] schedule> 2: Splitting {59} times (199)
## [2022-03-30 16:30:09.431] schedule> 3: Splitting {2} times (258)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:30:15.583] schedule> 1: Splitting {55} times (141)
## [2022-03-30 16:30:17.303] schedule> 2: Splitting {67} times (196)
## [2022-03-30 16:30:20.312] schedule> 3: Splitting {26} times (263)
## [2022-03-30 16:30:24.018] schedule> 4: Splitting {13} times (289)
## [2022-03-30 16:30:27.751] schedule> 5: Splitting {1} times (302)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:30:37.801] schedule> 1: Splitting {54} times (141)
## [2022-03-30 16:30:41.629] schedule> 2: Splitting {62} times (195)
## [2022-03-30 16:30:45.212] schedule> 3: Splitting {38} times (257)
## [2022-03-30 16:30:49.402] schedule> 4: Splitting {7} times (295)
## [2022-03-30 16:30:53.741] schedule> 5: Splitting {10} times (302)
## Creating default FF16 environemnt

3.b. varying 3 traits: LMA/narea/hmat - just arbitrarily grouped these…

## Creating default FF16 environemnt
## [2022-03-30 16:31:05.917] schedule> 1: Splitting {56} times (141)
## [2022-03-30 16:31:06.273] schedule> 2: Splitting {63} times (197)
## [2022-03-30 16:31:06.889] schedule> 3: Splitting {5} times (260)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:31:08.603] schedule> 1: Splitting {55} times (141)
## [2022-03-30 16:31:08.972] schedule> 2: Splitting {78} times (196)
## [2022-03-30 16:31:09.670] schedule> 3: Splitting {18} times (274)
## [2022-03-30 16:31:10.461] schedule> 4: Splitting {7} times (292)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:31:12.504] schedule> 1: Splitting {58} times (141)
## [2022-03-30 16:31:12.892] schedule> 2: Splitting {73} times (199)
## [2022-03-30 16:31:13.598] schedule> 3: Splitting {30} times (272)
## [2022-03-30 16:31:14.460] schedule> 4: Splitting {18} times (302)
## [2022-03-30 16:31:15.421] schedule> 5: Splitting {6} times (320)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:31:17.824] schedule> 1: Splitting {56} times (141)
## [2022-03-30 16:31:18.169] schedule> 2: Splitting {59} times (197)
## [2022-03-30 16:31:18.796] schedule> 3: Splitting {34} times (256)
## [2022-03-30 16:31:19.603] schedule> 4: Splitting {8} times (290)
## [2022-03-30 16:31:20.444] schedule> 5: Splitting {10} times (298)
## Creating default FF16 environemnt

Varying mortality rate – Rate of instantaneous mortality at rho_0 [/yr]

Varying the background mortality leads to different trajectory and stand outcomes

## Creating default FF16 environemnt
## [2022-03-30 16:31:24.780] schedule> 1: Splitting {60} times (141)
## [2022-03-30 16:31:26.249] schedule> 2: Splitting {71} times (201)
## [2022-03-30 16:31:28.953] schedule> 3: Splitting {13} times (272)
## Creating default FF16 environemnt
## Creating default FF16 environemnt
## [2022-03-30 16:31:35.389] schedule> 1: Splitting {49} times (141)
## [2022-03-30 16:31:36.547] schedule> 2: Splitting {45} times (190)
## [2022-03-30 16:31:38.169] schedule> 3: Splitting {3} times (235)
## Creating default FF16 environemnt

Visualise tradeoffs

We can vary the scaling exponents in each trade-off to change the strength of the trade-off, how large the spectrum of values is

LMA vs k_l – rate of leaf turnover x (LMA/mean LMA) ^ scaling exponent

Amax: max assimilation, Narea & photosynthesis and respiration rates – [mol / d / m2]

wood density affecting DI mortality and wood turnover rate: